e61a220dd6b25dbe773d0e708e83ffc0ea45dd19,test/se/hiflyer/fettle/TestTransitionActions.java,TestTransitionActions,actionsAreRunOnTransitions,#,10
Before Change
public void actionsAreRunOnTransitions() {
StateMachine<States> machine = StateMachine.createStateMachineOfEnum(States.class, States.INITIAL);
Condition condition1 = mock(Condition.class);
stubReturn(false).on(condition1).isSatisfied();
Transition<States> initToOne = new BasicTransition<States>(States.INITIAL, States.ONE, condition1);
machine.addTransition(initToOne);
Transition<States> oneToTwo = new BasicTransition<States>(States.ONE, States.TWO, condition1);
machine.addTransition(oneToTwo);
Transition<States> twoToOne = new BasicTransition<States>(States.TWO, States.ONE, condition1);
machine.addTransition(twoToOne);
Runnable transitionAction1 = mock(Runnable.class);
machine.addTransitionAction(initToOne, transitionAction1);
Runnable transitionAction2 = mock(Runnable.class);
machine.addTransitionAction(twoToOne, transitionAction2);
machine.update();
verifyNever().on(transitionAction1).run();
verifyNever().on(transitionAction2).run();
stubReturn(true).on(condition1).isSatisfied();
machine.update();
verifyOnce().on(transitionAction1).run();
verifyNever().on(transitionAction2).run();
machine.update();
verifyOnce().on(transitionAction1).run();
verifyNever().on(transitionAction2).run();
After Change
@Test
public void actionsAreRunOnTransitions() {
StateMachine<States> machine = StateMachine.createStateMachineOfEnum(States.class, States.INITIAL);
machine.addTransition(States.INITIAL, States.ONE, BasicConditions.ALWAYS, "");
Runnable transitionAction1 = mock(Runnable.class);
machine.addTransition(States.ONE, States.TWO, BasicConditions.ALWAYS, "", Lists.newArrayList(transitionAction1));
Runnable transitionAction2 = mock(Runnable.class);
machine.addTransition(States.TWO, States.ONE, BasicConditions.ALWAYS, "", Lists.newArrayList(transitionAction2));
machine.fireEvent("");
verifyNever().on(transitionAction1).run();
verifyNever().on(transitionAction2).run();
machine.fireEvent("");
verifyOnce().on(transitionAction1).run();
verifyNever().on(transitionAction2).run();
machine.fireEvent("foo");
verifyOnce().on(transitionAction1).run();
verifyNever().on(transitionAction2).run();
machine.fireEvent("");
verifyOnce().on(transitionAction1).run();
verifyOnce().on(transitionAction2).run();